/**
 * 
 */
package info.sswap.ontologies.modularity;

import java.io.IOException;
import java.io.OutputStream;
import java.net.URI;
import java.util.Set;

/**
 * @author Pavel Klinov
 *
 */
public interface Module {

	public Set<URI> getSignature();
	public String getModelAPI();
	public URI getDefiningOntologyURI(URI term);
	//TODO Maybe it's better to have a central Combinator class for this thing
	//otherwise every impl will have to know how to combine itself w/ other impls
	public Module union(Module module);
	public void write(OutputStream stream) throws IOException;
	public boolean isEmpty();
}

